# eric7.Testing.TestingWidget

Module implementing a widget to orchestrate unit test execution.

### Global Attributes

None

### Classes

TestingWidget | Class implementing a widget to orchestrate unit test execution.
TestingWidgetModes | Class defining the various modes of the testing widget.
TestingWindow | Main window class for the standalone dialog.

### Functions

clearSavedHistories | Function to clear the saved history lists.

## TestingWidget

Class implementing a widget to orchestrate unit test execution.

### Signals

testFile(str, int, bool)
  emitted to show the source of a test file
testRunStopped()
  emitted after a test run has finished

### Derived from

QWidget, Ui_TestingWidget

### Class Attributes

TestCaseFileRole
TestCaseIdRole
TestCaseLinenoRole
TestCaseNameRole

### Class Methods

None

### Methods

TestingWidget | Constructor
__adjustPendingState | Private method to change the status indicator of all still pending tests to "not run".
__coverageData | Private slot to handle the 'coverageData' signal of the executor.
__determineInterpreter | Private method to determine the interpreter to be used.
__discoverTests | Private slot to discover tests but don't execute them.
__editorClosing | Private method called, when an editor is closing.
__findDiscoveryItem | Private method to find an item given the module path.
__insertDiscovery | Private slot to insert the discovery start directory into the discoveryPicker object.
__insertHistory | Private slot to insert an item into a history object.
__insertTestFile | Private slot to insert a test file name into the testsuitePicker object.
__insertTestName | Private slot to insert a test name into the testComboBox object.
__loadRecent | Private method to load the most recently used lists.
__openEditor | Private method to open an editor window for the given file.
__populateTestFrameworkComboBox | Private method to (re-)populate the test framework selector.
__populateVenvComboBox | Private method to (re-)populate the virtual environments selector.
__processTestResult | Private slot to handle the receipt of a test result object.
__projectClosed | Private slot to handle a project being closed.
__projectOpened | Private slot to handle a project being opened.
__resetResults | Private slot to reset the test results tab and data.
__saveRecent | Private method to save the most recently used lists.
__selectedTestCases | Private method to assemble the list of selected test cases and suites.
__setDiscoverMode | Private slot to switch the widget to test discovery mode.
__setIdleMode | Private slot to switch the widget to idle mode.
__setRunningMode | Private slot to switch the widget to running mode.
__setStatusLabel | Private slot to set the status label to the text sent by the model.
__setStoppedMode | Private slot to switch the widget to stopped mode.
__showCoverageDialog | Private slot to show a code coverage dialog for the most recent test run.
__showLogOutput | Private slot to show the output of the most recent test run.
__showSource | Private slot to show the source of a traceback in an editor.
__stopTests | Private slot to stop the current test run.
__testDiscoveryAboutToBeStarted | Private slot to handle the 'testDiscoveryAboutToBeStarted' signal of the executor.
__testDiscoveryError | Private slot handling the 'collectError' signal of the executor.
__testDiscoveryProcessFinished | Private slot to handle the 'testFinished' signal of the executor in discovery mode.
__testProcessFinished | Private slot to handle the 'testFinished' signal of the executor.
__testRunAboutToBeStarted | Private slot to handle the 'testRunAboutToBeStarted' signal of the executor.
__testRunFinished | Private slot to handle the 'testRunFinished' signal of the executor.
__testStarted | Private slot handling the 'startTest' signal of the executor.
__testsCollectError | Private slot handling the 'collectError' signal of the executor.
__testsCollected | Private slot handling the 'collected' signal of the executor.
__testsDiscovered | Private slot handling the 'collected' signal of the executor in discovery mode.
__testsStopped | Private slot to handle the 'stop' signal of the executor.
__updateButtonBoxButtons | Private slot to update the state of the buttons of the button box.
__updateCoverage | Private slot to update the state of the coverage checkbox depending on the selected framework's capabilities.
__updateMarkerSupport | Private slot to update the state of the marker related widgets depending on the selected framework's capabilities.
__updatePatternSupport | Private slot to update the state of the test name pattern line edit depending on the selected framework's capabilities.
__updateProgress | Private slot to update the progress indicators.
__updateStatusFilterComboBox | Private method to update the status filter dialog box.
clearRecent | Public slot to clear the recently used lists.
closeEvent | Protected method to handle the close event.
getFailedTests | Public method to get the list of failed tests (if any).
getReleaseMode | Public method to get the release mode flag.
getResultsModel | Public method to get a reference to the model containing the test result data.
hasFailedTests | Public method to check for failed tests.
on_buttonBox_clicked | Private slot called by a button of the button box clicked.
on_discoverCheckBox_toggled | Private slot handling state changes of the 'discover' checkbox.
on_discoveryList_customContextMenuRequested | Private slot to show the context menu of the dicovery list.
on_discoveryList_itemActivated | Private slot handling the user activating an item.
on_discoveryList_itemChanged | Private slot handling the user checking or unchecking an item.
on_discoveryPicker_editTextChanged | Private slot to handle a change of the discovery start directory.
on_frameworkComboBox_currentIndexChanged | Private slot handling the selection of a test framework.
on_showMarkersButton_clicked | Private slot to show a window containing the list of defined markers.
on_statusFilterComboBox_currentTextChanged | Private slot handling the selection of a status for items to be shown.
on_testsuitePicker_aboutToShowPathPickerDialog | Private slot called before the test file selection dialog is shown.
on_venvComboBox_currentIndexChanged | Private slot handling the selection of a virtual environment.
on_versionsButton_clicked | Private slot to show the versions of available plugins.
setTestFile | Public slot to set the given test file as the current one.
startTests | Public slot to start the test run.

### Static Methods

None

#### TestingWidget (Constructor)

TestingWidget(testfile=None, parent=None, releaseMode=False)

Constructor

testfile (str (optional))
  file name of the test to load (defaults to None)
parent (QWidget (optional))
  reference to the parent widget (defaults to None)
releaseMode (bool (optional))
  flag indicating the mode of operations (defaults to False)

#### TestingWidget.__adjustPendingState

__adjustPendingState()

Private method to change the status indicator of all still pending tests to "not run".

#### TestingWidget.__coverageData

__coverageData(coverageFile)

Private slot to handle the 'coverageData' signal of the executor.

coverageFile (str)
  file containing the coverage data

#### TestingWidget.__determineInterpreter

__determineInterpreter(venvName)

Private method to determine the interpreter to be used.

venvName (str)
  name of the virtual environment

Return:
  path of the interpreter executable

Return Type:
  str

#### TestingWidget.__discoverTests

__discoverTests()

Private slot to discover tests but don't execute them.

#### TestingWidget.__editorClosing

__editorClosing(editor)

Private method called, when an editor is closing.

editor (MiniEditor)
  reference to the closing editor

#### TestingWidget.__findDiscoveryItem

__findDiscoveryItem(modulePath)

Private method to find an item given the module path.

modulePath (str)
  path of the module in dotted notation

Return:
  reference to the item or None

Return Type:
  QTreeWidgetItem or None

#### TestingWidget.__insertDiscovery

__insertDiscovery(start)

Private slot to insert the discovery start directory into the discoveryPicker object.

start (str)
  start directory name to be inserted

#### TestingWidget.__insertHistory

__insertHistory(widget, history, item)

Private slot to insert an item into a history object.

widget (QComboBox or EricComboPathPicker)
  reference to the widget
history (list of str)
  array containing the history
item (str)
  item to be inserted

#### TestingWidget.__insertTestFile

__insertTestFile(prog)

Private slot to insert a test file name into the testsuitePicker object.

prog (str)
  test file name to be inserted

#### TestingWidget.__insertTestName

__insertTestName(testName)

Private slot to insert a test name into the testComboBox object.

testName (str)
  name of the test to be inserted

#### TestingWidget.__loadRecent

__loadRecent()

Private method to load the most recently used lists.

#### TestingWidget.__openEditor

__openEditor(filename, linenumber=1)

Private method to open an editor window for the given file.

Note: This method opens an editor window when the testing dialog is called as a standalone application.

filename (str)
  path of the file to be opened
linenumber (int (optional))
  line number to place the cursor at (defaults to 1)

#### TestingWidget.__populateTestFrameworkComboBox

__populateTestFrameworkComboBox()

Private method to (re-)populate the test framework selector.

#### TestingWidget.__populateVenvComboBox

__populateVenvComboBox()

Private method to (re-)populate the virtual environments selector.

#### TestingWidget.__processTestResult

__processTestResult(result)

Private slot to handle the receipt of a test result object.

result (TestResult)
  test result object

#### TestingWidget.__projectClosed

__projectClosed()

Private slot to handle a project being closed.

#### TestingWidget.__projectOpened

__projectOpened()

Private slot to handle a project being opened.

#### TestingWidget.__resetResults

__resetResults()

Private slot to reset the test results tab and data.

#### TestingWidget.__saveRecent

__saveRecent()

Private method to save the most recently used lists.

#### TestingWidget.__selectedTestCases

__selectedTestCases(parent=None)

Private method to assemble the list of selected test cases and suites.

parent (QTreeWidgetItem)
  reference to the parent item

Return:
  list of selected test cases

Return Type:
  list of str

#### TestingWidget.__setDiscoverMode

__setDiscoverMode()

Private slot to switch the widget to test discovery mode.

#### TestingWidget.__setIdleMode

__setIdleMode()

Private slot to switch the widget to idle mode.

#### TestingWidget.__setRunningMode

__setRunningMode()

Private slot to switch the widget to running mode.

#### TestingWidget.__setStatusLabel

__setStatusLabel(statusText)

Private slot to set the status label to the text sent by the model.

statusText (str)
  text to be shown

#### TestingWidget.__setStoppedMode

__setStoppedMode()

Private slot to switch the widget to stopped mode.

#### TestingWidget.__showCoverageDialog

__showCoverageDialog()

Private slot to show a code coverage dialog for the most recent test run.

#### TestingWidget.__showLogOutput

__showLogOutput()

Private slot to show the output of the most recent test run.

#### TestingWidget.__showSource

__showSource(filename, lineno)

Private slot to show the source of a traceback in an editor.

filename (str)
  file name of the file to be shown
lineno (int)
  line number to go to in the file

#### TestingWidget.__stopTests

__stopTests()

Private slot to stop the current test run.

#### TestingWidget.__testDiscoveryAboutToBeStarted

__testDiscoveryAboutToBeStarted()

Private slot to handle the 'testDiscoveryAboutToBeStarted' signal of the executor.

#### TestingWidget.__testDiscoveryError

__testDiscoveryError(errors)

Private slot handling the 'collectError' signal of the executor.

errors (list of tuple of (str, str))
  list of tuples containing the test name and a description of the error

#### TestingWidget.__testDiscoveryProcessFinished

__testDiscoveryProcessFinished(_results, output)

Private slot to handle the 'testFinished' signal of the executor in discovery mode.

_results (list of TestResult)
  list of test result objects (if not sent via the 'testResult' signal) (unused)
output (str)
  string containing the test process output (if any)

#### TestingWidget.__testProcessFinished

__testProcessFinished(_results, output)

Private slot to handle the 'testFinished' signal of the executor.

_results (list of TestResult)
  list of test result objects (if not sent via the 'testResult' signal) (unused)
output (str)
  string containing the test process output (if any)

#### TestingWidget.__testRunAboutToBeStarted

__testRunAboutToBeStarted()

Private slot to handle the 'testRunAboutToBeStarted' signal of the executor.

#### TestingWidget.__testRunFinished

__testRunFinished(noTests, duration)

Private slot to handle the 'testRunFinished' signal of the executor.

noTests (int)
  number of tests run by the executor
duration (float)
  time needed in seconds to run the tests

#### TestingWidget.__testStarted

__testStarted(test)

Private slot handling the 'startTest' signal of the executor.

test (tuple of (str, str, str))
  tuple containing the id, name and short description of the tests about to be run

#### TestingWidget.__testsCollectError

__testsCollectError(errors)

Private slot handling the 'collectError' signal of the executor.

errors (list of tuple of (str, str))
  list of tuples containing the test name and a description of the error

#### TestingWidget.__testsCollected

__testsCollected(testNames)

Private slot handling the 'collected' signal of the executor.

testNames (list of tuple of (str, str, str, str, int, list))
  list of tuples containing the test id, the test name a description, the file name, the line number and the test path as a list of collected tests

#### TestingWidget.__testsDiscovered

__testsDiscovered(testNames)

Private slot handling the 'collected' signal of the executor in discovery mode.

testNames (list of tuple of (str, str, str, str, int, list))
  list of tuples containing the test id, the test name a description, the file name, the line number and the test path as a list of collected tests

#### TestingWidget.__testsStopped

__testsStopped()

Private slot to handle the 'stop' signal of the executor.

#### TestingWidget.__updateButtonBoxButtons

__updateButtonBoxButtons()

Private slot to update the state of the buttons of the button box.

#### TestingWidget.__updateCoverage

__updateCoverage()

Private slot to update the state of the coverage checkbox depending on the selected framework's capabilities.

#### TestingWidget.__updateMarkerSupport

__updateMarkerSupport()

Private slot to update the state of the marker related widgets depending on the selected framework's capabilities.

#### TestingWidget.__updatePatternSupport

__updatePatternSupport()

Private slot to update the state of the test name pattern line edit depending on the selected framework's capabilities.

#### TestingWidget.__updateProgress

__updateProgress()

Private slot to update the progress indicators.

#### TestingWidget.__updateStatusFilterComboBox

__updateStatusFilterComboBox()

Private method to update the status filter dialog box.

#### TestingWidget.clearRecent

clearRecent()

Public slot to clear the recently used lists.

#### TestingWidget.closeEvent

closeEvent(event)

Protected method to handle the close event.

event (QCloseEvent)
  close event

#### TestingWidget.getFailedTests

getFailedTests()

Public method to get the list of failed tests (if any).

Return:
  list of IDs of failed tests

Return Type:
  list of str

#### TestingWidget.getReleaseMode

getReleaseMode()

Public method to get the release mode flag.

Return:
  flag indicating the mode of operation

Return Type:
  bool

#### TestingWidget.getResultsModel

getResultsModel()

Public method to get a reference to the model containing the test result data.

Return:
  reference to the test results model

Return Type:
  TestResultsModel

#### TestingWidget.hasFailedTests

hasFailedTests()

Public method to check for failed tests.

Return:
  flag indicating the existence of failed tests

Return Type:
  bool

#### TestingWidget.on_buttonBox_clicked

on_buttonBox_clicked(button)

Private slot called by a button of the button box clicked.

button (QAbstractButton)
  button that was clicked

#### TestingWidget.on_discoverCheckBox_toggled

on_discoverCheckBox_toggled(_checked)

Private slot handling state changes of the 'discover' checkbox.

_checked (bool)
  state of the checkbox (unused)

#### TestingWidget.on_discoveryList_customContextMenuRequested

on_discoveryList_customContextMenuRequested(pos)

Private slot to show the context menu of the dicovery list.

pos (QPoint)
  the position of the mouse pointer

#### TestingWidget.on_discoveryList_itemActivated

on_discoveryList_itemActivated(item, column)

Private slot handling the user activating an item.

item (QTreeWidgetItem)
  reference to the item
column (int)
  column of the double click

#### TestingWidget.on_discoveryList_itemChanged

on_discoveryList_itemChanged(item, column)

Private slot handling the user checking or unchecking an item.

item (QTreeWidgetItem)
  reference to the item
column (int)
  changed column

#### TestingWidget.on_discoveryPicker_editTextChanged

on_discoveryPicker_editTextChanged(txt)

Private slot to handle a change of the discovery start directory.

txt (str)
  new discovery start directory

#### TestingWidget.on_frameworkComboBox_currentIndexChanged

on_frameworkComboBox_currentIndexChanged(index)

Private slot handling the selection of a test framework.

index (int)
  index of the selected framework

#### TestingWidget.on_showMarkersButton_clicked

on_showMarkersButton_clicked()

Private slot to show a window containing the list of defined markers.

#### TestingWidget.on_statusFilterComboBox_currentTextChanged

on_statusFilterComboBox_currentTextChanged(status)

Private slot handling the selection of a status for items to be shown.

status (str)
  selected status

#### TestingWidget.on_testsuitePicker_aboutToShowPathPickerDialog

on_testsuitePicker_aboutToShowPathPickerDialog()

Private slot called before the test file selection dialog is shown.

#### TestingWidget.on_venvComboBox_currentIndexChanged

on_venvComboBox_currentIndexChanged(index)

Private slot handling the selection of a virtual environment.

index (int)
  index of the selected environment

#### TestingWidget.on_versionsButton_clicked

on_versionsButton_clicked()

Private slot to show the versions of available plugins.

#### TestingWidget.setTestFile

setTestFile(testFile, forProject=False)

Public slot to set the given test file as the current one.

testFile (str)
  path of the test file
forProject (bool (optional))
  flag indicating that this call is for a project (defaults to False)

#### TestingWidget.startTests

startTests(failedOnly=False, debug=False)

Public slot to start the test run.

failedOnly (bool (optional))
  flag indicating to run only failed tests (defaults to False)
debug (bool (optional))
  flag indicating to start the test run with debugger support (defaults to False)

Up

## TestingWidgetModes

Class defining the various modes of the testing widget.

### Derived from

enum.Enum

### Class Attributes

DISCOVERY
IDLE
RUNNING
STOPPED

### Class Methods

None

### Methods

None

### Static Methods

None

Up

## TestingWindow

Main window class for the standalone dialog.

### Derived from

EricMainWindow

### Class Attributes

None

### Class Methods

None

### Methods

TestingWindow | Constructor
eventFilter | Public method to filter events.

### Static Methods

None

#### TestingWindow (Constructor)

TestingWindow(testfile=None, parent=None)

Constructor

testfile (str)
  file name of the test script to open
parent (QWidget)
  reference to the parent widget

#### TestingWindow.eventFilter

eventFilter(_obj, event)

Public method to filter events.

_obj (QObject)
  reference to the object the event is meant for (unused)
event (QEvent)
  reference to the event object

Return:
  flag indicating, whether the event was handled

Return Type:
  bool

Up

## clearSavedHistories

clearSavedHistories(self)

Function to clear the saved history lists.

Up